.properties {
    margin: 0.5em 1em;
}

.properties h1 {
    text-align: center;
    font-size: 120%;
}

.properties h2 {
    font-size: 110%;
}

.properties h3 {
    font-size: 100%;
}

.properties > div {
    margin-top: 0.5em;
    margin-bottom: 0.3em;
}

.properties > div.btn-group {
    text-align: center;
}

.properties label {
    display: block;
    margin-top: 0.5em;
    margin-bottom: 0.3em;
}

.properties input,
.properties select {
    width: 100%;
}

.properties span.btn-group,
.properties :not(.btn-group):not(td) > button {
    margin-left: 1em;
}

.properties {
    color: white;
}

.properties .help {
    margin-left: 1em;
}

.properties table.custom-css-js {
    width: 100%;
    border-radius: 0.5em;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5) inset;
    background-color: white;
    color: black;
}

.properties .custom-css-js tr th {
    width: 100%;
}

.properties .custom-css-js td:first-child {
    padding-left: 0.5em;
    padding-right: 0.5em;
}

.properties input.custom-css-js {
    display: none;
}

@keyframes spinner {
    to { transform: rotate(360deg); }
}

.spinner {
    margin-left: 1em;
    margin-right: 1em;
}

.spinner:before {
    content: '';
    box-sizing: border-box;
    position: absolute;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    border: 4px solid transparent;
    border-top-color: #333;
    animation: spinner .8s linear infinite;
}
